
const loginRegModel = require('../models/loginAndReg')

/** get和post请求，获取前端传来的参数不一样
*   get请求：前端在路由上（接口）拼接参数传来，这里用ctx.query来获取(获取?问号后面的内容)
*   ctx.params用来获取路由参数，比如/user/:id中，获取的就是id的值
*   post请求：前端不在接口上拼接参数，而是以body请求体传来，这里用ctx.request.body来获取
**/ 
const register = async (ctx, next) => {
  //console.log('post 请求，获取参数：ctx.request.body', ctx.request.body)
  const { username, password, phoneNum } = ctx.request.body
  
  if(username.length === 0) {
    ctx.body = {
      code: 500,
      message: '用户名不能为空'
    }
    return
  }

  if(password.length === 0) {
    ctx.body = {
      code: 500,
      message: '密码不能为空'
    }
    return
  }
  
  if(phoneNum.length === 0) {
    ctx.body = {
      code: 500,
      message: '手机号码不能为空'
    }
    return
  }

  let result = await loginRegModel.handleReg(ctx.request.body)
  //console.log('----------result-----------', result)
  if(result.status === 1){
    ctx.body = {
      code: result.code ? result.code : 200,
      message: result.message ? result.message : '注册成功',
      data: result._doc ? result._doc : {}
    }
  }else{
    ctx.body = {
      code: 500,
      message: result.message ? result.message : '注册失败'
    }
  }
}

const login = async (ctx, next) => {
  let result = await loginRegModel.handleLogin(ctx.request.body)
  if(result.status === 1){
    ctx.body = {
      code: result.code ? result.code : 200,
      message: result.message ? result.message : '登录成功',
      data: result._doc ? result._doc : {}
    }
  }else{
    ctx.body = {
      code: 500,
      message: result.message ? result.message : '登录失败'
    }
  }
}

module.exports = {
  register, 
  login
}